/**
 * 部门机构DAO
 * @author EchoHu
 * contract:elyzium_wow@hotmail.com
 */
package com.pms.privilege.dept.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.pms.privilege.dept.model.DeptModel;
import com.pms.privilege.user.model.UserModel;

@Repository
public interface DeptDAO {
	/**
	 * 查询所有部门
	 * @return 所有部门list
	 */
	public List<DeptModel> queryDeptAll();
	/**
	 * 查询部门信息
	 * @param dept_id 部门id
	 * @return
	 */
	public DeptModel queryDeptById(@Param(value = "dept_id") long dept_id);
	/**
	 * 查询部门列表
	 * @param level 部门所在等级
	 * @return
	 */
	public List<DeptModel> queryDeptBySpr(@Param(value="dept_spr") long dept_spr);
	/**
	 * 新增部门节点
	 * @param dm
	 * @return
	 */
	public int insertDept(DeptModel dm);
	/**
	 *删除部门节点
	 * @param dept_spr
	 * @return
	 */
	public int deleteDept(@Param(value="dept_id") long dept_id);
	/**
	 * 添加用户到部门节点
	 * @param dept_id
	 * @param user_id
	 * @param dept_user_id
	 * @return
	 */
	public int addUser(@Param(value="dept_id") long dept_id,@Param(value="user_id") long user_id,@Param(value="dept_user_id") String dept_user_id);
	
	/**
	 * 删除部门下的用户
	 * @param dept_id
	 * @param user_id
	 * @param dept_user_id
	 * @return
	 */
	public int delUser(@Param(value="dept_id") long dept_id,@Param(value="user_id") long user_id,@Param(value="dept_user_id") String dept_user_id);

	/**
	 * 按部门id查找用户
	 * @param dept_id
	 * @return
	 */
	public List<UserModel> queryUserByDept(@Param(value="dept_id") long dept_id);
	/**
	 * 删除部门下所有用户
	 * @param dept_id
	 * @return
	 */
	public int delUserFromDept(@Param(value="dept_id") long dept_id);

}
